On any given day, a typical person may use a smartphone, tablet computer, office desktop computer, and other computing devices. As computing devices continue to be further integrated into individuals' busy everyday lives, their workflows will continue to become more nonlinear. That is, a person may begin work on a project without finishing a project already started or perform multiple computational tasks in parallel (e.g., on a single computing device). For example, a person may begin to check her email upon arriving to work, execute a script to generate some data, begin working on a written proposal, and later return to checking email and reviewing the results of the executed script.
If a single computing device is used to perform a large number of tasks (e.g., execute several applications), many of the tasks must typically be minimized to prevent the user's screen from becoming “crowded” and essentially unusable. Numerous measures have been taken in an attempt to remedy this problem. For example, users oftentimes connect their computing devices to external monitors to obtain more screen space, but such monitors tend to be bulky and inconvenient for mobile or temporary use. Alternatively, virtual desktops may be defined that allow users to define “screens” and have them attached to actions or events that allow them to be moved out of the way and brought back (e.g., via a simple gesture). However, such virtual desktops are nonetheless limited to the “real estate” defined by the size of the user's physical screen.